# -*- coding: utf-8 -*-

def binToDec(binario):
    '''
    Retorna o valor em decimal de uma string de numeros em binario
    return string
    '''
    
    binario = binario[::-1]
    dec = 0
    i = 0
    for n in binario:
        if n == '1':
            dec = dec + (2 ** i)
        i = i + 1
    return str(dec)
    
def decToBin(decimal):
    '''
    Retorna uma string com o valor em binário do valor passado em decimal.
    O valor em decimal deve ser um inteiro
    '''
    
    bin = ''
    while decimal > 1:
        div = decimal / 2
        resto = decimal % 2
        bin = bin + str(resto)
        decimal = div
    bin = bin + str(decimal)
    return bin[::-1]
    
def hexToBin(hexadecimal):
    '''
    Retorna uma string com o valor em binário do valor passado em hexadecimal.
    O valor em hexadecimal deve ser uma string
    '''
    
    conv = {}
    conv['0'] = '0000'
    conv['1'] = '0001'
    conv['2'] = '0010'
    conv['3'] = '0011'
    conv['4'] = '0100'
    conv['5'] = '0101'
    conv['6'] = '0110'
    conv['7'] = '0111'
    conv['8'] = '1000'
    conv['9'] = '1001'
    conv['A'] = '1010'
    conv['B'] = '1011'
    conv['C'] = '1100'
    conv['D'] = '1101'
    conv['E'] = '1110'
    conv['F'] = '1111'
    
    hexadecimal = hexadecimal[::-1]
    bin = ''
    for v in hexadecimal:
        bin = conv[v.upper()] + bin
    
    return bin